rabbitmq链接超时

您所在的位置:网站首页 rabbitmq 心跳 heartbeat rabbitmq链接超时

rabbitmq链接超时

2023-09-09 16:43| 来源: 网络整理| 查看: 265

我正在使用RabbitMQ生产者向消费者发送长时间运行的任务(30分钟).问题是,当关闭服务器的连接并且未确认的任务被重新排队时,消费者仍在处理任务.

从研究中我了解到heartbeat或increased connection timeout都可以用来解决这个问题.这两种解决方案在尝试时都会出错.在阅读类似帖子的答案时,我还了解到,自发布答案以来已经对RabbitMQ实施了许多更改(例如,默认心跳超时已从RabbitMQ 3.5.5之前的580更改为60).

指定心跳和阻止的连接超时时:

credentials = pika.PlainCredentials('user', 'password')

parameters = pika.ConnectionParameters('XXX.XXX.XXX.XXX', port, '/', credentials, blocked_connection_timeout=2000)

connection = pika.BlockingConnection(parameters)

channel = connection.channel()

显示以下错误:

TypeError: __init__() got an unexpected keyword argument 'blocked_connection_timeout'

在连接参数中指定heartbeat_interval = 1000时,会显示类似的错误:TypeError:__ init __()得到意外的关键字参数’heartbeat_interval’

类似地,对于socket_timeout = 1000,会显示以下错误:TypeError:__ init __()得到一个意外的关键字参数’socket_timeout’

我在Ubuntu 14.04上运行RabbitMQ 3.6.1,pika 0.10.0和python 2.7.

>为什么上述方法会产生错误?

>在持续长时间运行的任务中,是否可以使用心跳方法?例如,在执行需要30分钟的大型数据库连接时,是否可以使用心跳?我赞成心跳方法,很多时候很难判断数据库连接等任务需要多长时间.

我已经阅读了类似问题的答案



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3